﻿using System;

using SBPweb.PlAzureNet.Shared.Library.Actors;

using SBPweb.PlAzureNet.Client.Library.Services.Data;

namespace SBPweb.PlAzureNet.Client.Library.Social.Actors
{

    public abstract class UserBase : Person, IUser
    {

        public abstract new string UserId
        {
            get;
        }

        public abstract string FullName
        {
            get;
        }

        public abstract string FirstName
        {
            get;
        }

        public abstract string LastName
        {
            get;
        }

        public abstract string EMail
        {
            get;
        }

        public abstract Uri AvatarUri
        {
            get;
        }

        public abstract Genders Gender
        {
            get;
        }

        public virtual int CompareTo(IUser other)
        {
            if (other == null)
            {
                return 0;
            }
            return this.FullName.CompareTo(other.FullName);
        }

        public virtual int CompareTo(object obj)
        {
            return CompareTo(obj as IUser);
        }

    }

}